/**
 * TODO  修改谨慎 很多页面都引用到，如果实现不了页面的需求 这个mixin真的不在适合你的页面使用
 *  this.$toast.loading 处理 添加和移除 两个事件 还有离开此页面实例 处理了移除
 *  page 中使用
 *  添加 this.addLoading(message = '加载中..')
 *  移除 this.rmLoading() //默认延迟800 移除可选 任意值
 * **/
 export default {
  data() {
    return {
      toastLoading: '',
    }
  },

  //离开页面 移除加载中
  beforeDestroy() {
   this.rmLoading('none')
  },

  methods: {
    // 添加加载中
    async addLoading(message = '加载中..', icon = '') {
      await this.rmLoading('none')
      this.toastLoading = this.$toast.loading({
        message,
        icon,
        duration: 0
      })
    },

    // 移除加载中
    async rmLoading(type = 'time') {
      if(type === 'time') await window.setTimeout(() => {}, 800);
      if (this.toastLoading !== '') {
        this.toastLoading.clear()
        this.toastLoading = ''
      }
    }
  },
}
